package com.sky.utils;

import java.math.BigDecimal;

public class MathUtils {
    /**
     * 计算百分比，精确到小数点位数
     *
     * @param v1
     * @param v2
     * @param scale
     * @return
     */
    public static double div(int v1, int v2, int scale) {
        if (scale < 0) {
            throw new IllegalArgumentException("没有指精确位数");
        }
        BigDecimal b1 = new BigDecimal(Integer.toString(v1));

        BigDecimal b2 = new BigDecimal(Integer.toString(v2));

        return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();

    }

    /**
     * 计算百分比，精确到小数点两位
     *
     * @param v1
     * @param v2
     * @return
     */
    public static double roundRatio(int v1, int v2) {
        if (v2 == 0) {
            return 0.0;
        }
        double result = div(v1, v2, 4);
        BigDecimal b1 = new BigDecimal(Double.toString(result));
        return b1.divide(new BigDecimal(1), 2, BigDecimal.ROUND_HALF_UP).doubleValue();
    }
}